package pseudoAssemblerCompiler.twopassassembler.controller;

import pseudoAssemblerCompiler.twopassassembler.model.assemblerAlgorithms.AvailableAssemblers;
import pseudoAssemblerCompiler.twopassassembler.model.entities.OperationCode;

import java.io.File;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: Администратор
 * Date: 15.04.12
 * Time: 19:46
 * To change this template use File | Settings | File Templates.
 */
public interface OperationCodeController {

    /**
     * Возвращает содержимое таблицы кодов операции
     * @return коды операций
     */
    public Map<String, OperationCode> getCodeOperationTableElements();

    public void addOperationCode();

    public void saveOperationCode(OperationCode code);

    public void removeOperationCode(OperationCode code);

    void loadCodeOperationTable();

    void loadReferenceTable();

    void loadSymbolicNamesTable();

    void openProgram(File selectedFile);

    void newProgram();

    void openProgram();

    void firstPassButtonPressed();

    void error(String error);

    void addCodeOperation();

    void secondPassButtonPressed();

    void newProgram(String programName);

    void setAssemblerAlgorithm(AvailableAssemblers algorithm);

    void clearConsole();
}
